#ifndef TRAMO_CPP
#define TRAMO_CPP

#include "Tramo.h"

ostream &operator<<(ostream &out, const Tramo &t){
	out<<t.ObtenerOrigen()<<"\t\t\t"<<t.ObtenerDestino()<<"\t\t\t"<<t.ObtenerDistancia()<<"\t\t";
	return out;
}

Tramo::Tramo(const Puntero<Ciudad> Origen, const Puntero<Ciudad> Destino, int Distancia, TipoTransporte Tipo){
	ciudadOrigen = Origen;
	ciudadDestino = Destino;
	distancia = Distancia;
	tipoTransporte = Tipo;
}
	//Destructor
Tramo::~Tramo(){

}

Puntero<Ciudad> Tramo::ObtenerOrigen() const {
	return ciudadOrigen;
}

Puntero<Ciudad> Tramo::ObtenerDestino() const{
	return ciudadDestino;
}

int Tramo::ObtenerDistancia() const{
	return distancia;
}

TipoTransporte Tramo::ObtenerTipoTransporte() const{
	return tipoTransporte;
}

bool Tramo::operator==(const Tramo &t) const{
	return (distancia == t.ObtenerDistancia());
}

bool Tramo::operator<(const Tramo &t) const{
	return (distancia < t.ObtenerDistancia());
}

bool Tramo::operator>(const Tramo &t) const{
	return (distancia > t.ObtenerDistancia());
}

#endif